Gravis Ultrasound audio synthesis
---------------------------------
(update 1)

      It is easier to find the Holy Grail than to find a text describing
precisely what synthesis method the GUS uses, so it's time i take a shot
at it. For this text i have searched thru ftp archives troughout the world,
have asked info from Ensoniq, Roland, TurtleBeach, Advanced Gravis, Forte
Creative Labs and i also took into account the numerous comments, praise
and flames i received to model the text. Since this text is a result of a
collective internet and industry wisdom, flames will go the way of /dev/nul.
And please, read the text carefully, because i have received some comments
from people who were thinking i wrote something when in fact i wrote the
opposite (particularly from non anglophones).

      You probably have heard about the GUS beeing a wavetable soundcard.
I have received some comments that the GUS is not such a thing, but since
the industry uses this term (i.e. CL waveblaster, GUS, TB multisound etc...),
i am not in a position to create confusion by renaming the technology.
Wavetable explains perfectly what it is. A table containing a waveform.

      The GUS uses the third generation of wavetable synthesis, so before i
start explaining it, i'll talk about the first two generations first.

      The first generation of wavetable synthesis was actually a _digitally_
controlled _analog_ oscillator(s) where parameters controlling the waveform
were kept in memory. The curtis based synths and some others are directly
derived from this concept.

      The second generation of wavetable synthesis uses a digital oscillator,
with the waveform held in memory in it's basic form (one period usually).
Parameters to alter the oscillator behaviour are also in memory. I use the
general term "memory" instead of RAM, because in some case it's actually ROM,
FlashROM, PROM, EPROM, switches, buffers etc... The Ensoniq chip found in
the Macintosh Plus is an example (8 bit, 4 oscillators, 4096 byte wavetable).

      The third generation of wavetable synthesis which can be found in two
flavors (RAM or ROM) is based on the second generation, but uses bigger
wavetables to hold the waveform (either in single period or multi period
format) including this time the attack and release. In this section, i will
focus only on the GUS implementation, which basically encompass all other
implementations. Basically, what you have are 32 oscillators which can do the
exact same thing, and be programmed separately and/or simultaneously. What
the hardware can do without the operating system is not too important here
since we are looking at what the GUS _can_presently_do_ (with modifications
to the OS, the GUS could do pretty much any synthesis method one can dream
up), not what it would have done if the OS wasn't available. Of course, more
processing done in hardware means more CPU cycles left for other things.

      So in the GUS, you have some RAM (up to 1Mb) that holds 1, 2, 3, etc,
wavetables which consist of a sampled (or soft-synthesised) waveform, some
parameters and optionally a sampled attack and release. The GF1 chip (an
asic based on the Ensoniq DOC-II chip) will then playback a waveform when
triggered based on some parameters it is given, and on others it will fetch
from the wavetable. I dont know if all parameters can be fetched from RAM by
the GF1, nor if the GF1 can fetch some instructions from RAM, but by using
the current OS built in the windows drivers or in the DOS library, this is
what the GUS _can_presently_use_ to synthesise music:

      - sampled or envelopped attack in 8/16 bit, signed/unsigned
        format *
      - sampled waveform (anything! a period, or a several seconds
        sample) *
      - sampled or envelopped release *

with:

      - velocity (volume) *
      - panning (balance) *
      - precise frequency playback rates (with frequency based
        antialiasing and oversampling) *
      - mixing of all the channels *

Up to here, it's sample playback. But there is more:

      - full vibrato (FM, depth, rate, sweep)
      - full tremolo (AM, depth, rate, sweep)
      - LFO (Low Frequency Oscillator) *
      - forward, reverse, dual direction looping or no looping *
      - the loop points can be anywhere (for sampled attack and release) *
        |-------|-------------|--------------|
        Start   Start loop    End loop     End

      - 6 point enveloppe
      - tuning *
      - fractional endpoint *
      - combination of oscillators (up to 4 if the GF1 implementation
        is the same as Ensoniq) *
      - previous waveform usage *

And more recently:

      - 3D (focal point 3D positioning)

* indicates that the operation is done in hardware. Some others may be
done in hardware but i have not done any tests or found any technical
information to confirm it. I also base 1 item on the DOC II capability,
which should be implemented in the GF1.

      Also, reverb, flanger, phasing etc... could be easily implemente
within the drivers. Presently it can be done with a little work on the
patches and/or midi timestamp (i have succesfully made flanger and phasing).
Another thing that could be implemented is dynamic patch loading since the
card supports it (i have done it). You can even get a distorted sound (ideal
for guitars, vox, analog synths) by simply changing the 2's complement flag
(work best with soft-synthesised patches).

      Last, it is far better to have a RAM wavetable synth than a ROM one,
since you can upload your samples. Even sound canvas owners (and other synths
too) complain that their ROM based GS synth lacks interesting drum and bass
sounds, cannot play sound effects, and is not usable for dance and techno.
Also you can have more space for each samples, because you always have only
the samples you need in memory, so you can have better sampling rates and
better waveforms.

Ciao,
--
Francois Dion
    '  _   _   _
 CISM (_) (_)  _) FM       Montreal , Canada       Email: CISM@ERE.UMontreal.CA
      (_)  / . _)             10000 Watts          Telephone no: (514) 343-7511
_______________________________________________________________________________
Audio-C-DJ-Fractals-Future-Label-Multimedia-Music-Radio-Rave-Video-VR-Volvo-...

